﻿#include <iostream>
using namespace std;

//1.
//class A
//{
//public:
//	void test(float a)
//	{
//		cout << a;
//	}
//
//};
//class B :public A
//{
//public:
//	void test(int b)
//	{
//		cout << b;
//	}
//};
//
//int main()
//{
//	A* a = new A;
//	B* b = new B;
//	a = b;
//	b->test(1.1);
//	return 0;
//}

//7
//class A
//
//{
//
//public:
//
//    void f()
//
//    {
//
//        cout << "A::f()" << endl;
//
//    }
//
//};
//
//
//
//class B : public A
//
//{
//
//private:
//
//    void f()
//
//    {
//
//        cout << "B::f()" << endl;
//
//    }
//
//};
//
//
//
//int main()
//{
//
//
//    A* pa = new B;
//
//    pa->f();
//    return 0;
//}

//8
//class A
//
//{
//
//public:
//
//    A() :m_iVal(0) { test(); }
//
//    virtual void func() { std::cout << m_iVal << " "; }
//
//    void test() { func(); }
//
//public:
//
//    int m_iVal;
//
//};
//
//
//
//class B : public A
//
//{
//
//public:
//
//    B() { test(); }
//
//    virtual void func()
//
//    {
//
//        ++m_iVal;
//
//        std::cout << m_iVal << " ";
//
//    }
//
//};
//
//
//
//int main(int argc, char* argv[])
//
//{
//
//    A* p = new B;
//
//    p->test();
//
//    return 0;
//
//}


//不重写，表的地址一样吗
class Base
{
public:
	virtual void func()
	{

	}
};
class Derive :public Base
{

};

int main()
{
	Base b;
	Derive d;
	return 0;
}
//结论不一样